const Joi = require("joi");

// required() 为必填项，用户名可以用中英日韩最大长度为10，密码最少6位1大写1小写
const username = Joi.string().pattern(/^[A-Za-z0-9\u4E00-\u9FA5\u3040-\u309F\u30A0-\u30FF\u31F0-\u31FF\uAC00-\uD7A3]+$/).min(1).max(10).required();
const password = Joi.string().pattern(/^\S*(?=\S{6,18})(?=\S*[A-Z])(?=\S*[a-z])\S*$/).required();
const email = Joi.string().email().required();
const code = Joi.string().required();
// 双重身份认证
const usernameOrEmail = Joi.alternatives().try(
	Joi.string().pattern(/^[A-Za-z0-9\u4E00-\u9FA5\u3040-\u309F\u30A0-\u30FF\u31F0-\u31FF\uAC00-\uD7A3]+$/).min(1).max(50),
	Joi.string().email()
).required();

// 定义 ID，email的验证规则
const id = Joi.number().integer().min(1).required();

// 定义 avatar 头像的验证规则
const avatar = Joi.string().dataUri().required();

//定义验证注册表单数据的规则对象
exports.register_Schema = {
	body: {
		username,
		password,
		email,
		code
	}
};

//定义验证登录表单数据的规则对象
exports.login_Schema = {
	body: {
		username: usernameOrEmail,
		password
	}
};

//定义验证邮箱表单数据的规则对象
exports.email_Schema = {
	body: {
		email
	}
};

// 更新用户基本信息验证规则
// exports.update_userInfo_schema = {
//     body: {
//         id,
//         email: user_email
//     }
// }

// 验证规则对象更新密码
// exports.update_password_schema = {
//     body: {
//         oldPwd: password,
//         newPwd: Joi.not(Joi.ref("oldPwd")).concat(password)
//     }
// }

// 验证规则对象 - 头像验证
// exports.update_avatar_schema = {
//     body: {
//         avatar
//     }
// }